1. Field
Aspects of embodiments of the present invention relate to dynamic cache allocation and network management.
2. Related Art
With mobile devices, such as smartphones and tablet computers (tablets), many end users are controlled by data plans that are now capped by tiers. In part, this is because data consumption is growing faster than infrastructure capacity. Further, roaming costs can be exorbitant, such as in Europe (where roaming can be common, such as across national borders). In addition, performance may vary significantly based on coverage and congestion. This can be due, for example, to network coverage, which varies widely by location and wireless carrier.
Carriers are also experiencing negative effects. Network congestion reduces cellular coverage/quality. In effect, cell sites “shrink” to adapt to excessive congestion. In addition, high roaming costs often need to be paid to competitor carriers. This particularly affects smaller carriers, which have to pay more in roaming costs to their larger competitors for out-of-network coverage.
Enterprises may also experience high data plan costs, especially for traveling executives. Alternatives may not be pleasant, such as working more offline, which hurts productivity, particularly for tablet users.
Web sites in turn may have slow/poor user experience due to slower mobile networks and less powerful devices. This may be due in part to cellular latency, which may be high due to cellular connection setup (often one to two seconds). Further, bandwidth costs can be high for web site access, such as for video or audio portions of the web site.
One possible solution to such problems is to have a proxy server reduce the size of server responses by replacing media with lower resolution versions, but this reduces the media quality and the user experience. Another solution is to aggressively connect to any open Wi-Fi network, but it can be dangerous to connect to untrusted networks. A still further solution is to have client/server software provide various WAN optimization techniques, such as data deduplication or lower level packet caching (e.g., TCP), but this requires deploying extensive server-side software or appliances, and is often not as effective as higher level caching (e.g. HTTP) in reducing round-trips/requests to the origin server.
Higher level caching may be done in many ways. For example, the cache can save every response received by the device, managed in a least-recently-used caching protocol. This, however, wastes caching resources for data-intensive applications that do not repeat accesses, as well as crowds smaller application footprints out of the cache in favor of larger application footprints. By contrast, another solution is to employ a separate cache for each application (e.g., software application, or app), but then such caches would not be configurable by the carrier or enterprise, nor would they be able to leverage repeat activity (e.g., favor one application when it exhibits localized repeated requests for the same content) or shared activity between applications for the same content.